home *** CD-ROM | disk | FTP | other *** search
- Path: news.iadfw.net!usenet
- From: Mark Nelson <markn@airmail.net>
- Newsgroups: comp.lang.c
- Subject: Re: fast find algorithm
- Date: Tue, 09 Apr 1996 22:12:22 -0500
- Organization: Guest user
- Message-ID: <316B2716.4993@airmail.net>
- References: <Dp8wE6.8DG@cix.compulink.co.uk> <PdvZxMlyZE9U088yn@ime.usp.br> <4k9ggs$4ov@news1.mnsinc.com> <4kbrg8$luu@druid.borland.com>
- NNTP-Posting-Host: dal13-04.ppp.iadfw.net
- Mime-Version: 1.0
- Content-Type: text/plain; charset=us-ascii
- Content-Transfer-Encoding: 7bit
- X-Mailer: Mozilla 2.0GoldB2 (Win95; I)
-
- Pete Becker wrote:
- >
- > In article <4k9ggs$4ov@news1.mnsinc.com>, huang@mnsinc.com says...
- > >
- > >Rogerio Brito (rbrito@ime.usp.br) wrote:
- > >: huang@mnsinc.com (Szu-Wen Huang) wrote:
- > >: >Falstaff (falstaff@xs4all.nl) wrote:
- > >: >...
- > >: >: Hashing is slightly slower than straight table lookup and can't be
- > >: >: used when you want to delete elements from your table.
- > >: >...
- > >
- > >: >Hashing can't be used when you want to delete elements? Please explain.
- > >
- > It depends on what you use to resolve conflicting hash values for different
- > elements. If you resolve conflicts by rehashing, or by moving to the next
- > available entry in the hash array, or any other mechanism that uses the array
- > itself as the storage location for the conflicting value, then you can't delete
- > items, cause once you do there's no way to get to the ones that used to
- > conflict. The first one you try will map to your now-empty location, and it'll
- > look like it wasn't found.
- > If you use a linked list at each array location to resolve conflicts then
- > you can delete elements.
-
- Knuth gives an algorithm for deleting elements from a table when using linear probing,
- and it's pretty easy to see how that would work. I'm not sure there is a practical
- way to remove elements when using a secondary hash probe...
-
- Mark Nelson
- http://web2.airmail.net/markn
-